/**
 * 初始化巡视记录详情对话框
 */
var PatrolInfoDlg = {
    patrolInfoData: {},
    validateFields: {
        remark: {
            validators: {
                notEmpty: {
                    message: '巡视结果不能为空'
                }
            }
        },
        pareaSuggest: {
            validators: {
                notEmpty: {
                    message: '巡视区域不能为空'
                }
                // callback: {/*自定义，可以在这里与其他输入项联动校验*/
                //     message: '我是自定义',
                //     callback:function(value, validator,$field){
                //         console.log("我是值" + value);
                //         console.log("我是颜值" + validator);
                //         console.log("我是字段" + $field);
                //         return value==='wm5920';
                //     }
                // }
            }
        },
        pareaId: {
            validators: {
                notEmpty: {
                    message: '请选择巡视区域'
                }
            }
        }
    }
};

/**
 * 清除数据
 */
PatrolInfoDlg.clearData = function () {
    this.patrolInfoData = {};
}

/**
 * 设置对话框中的数据
 *
 * @param key 数据的名称
 * @param val 数据的具体值
 */
PatrolInfoDlg.set = function (key, val) {
    this.patrolInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
    return this;
}

/**
 * 设置对话框中的数据
 *
 * @param key 数据的名称
 * @param val 数据的具体值
 */
PatrolInfoDlg.get = function (key) {
    return $("#" + key).val();
}

/**
 * 关闭此对话框
 */
PatrolInfoDlg.close = function () {
    parent.layer.close(window.parent.Patrol.layerIndex);
}

/**
 * 收集数据
 */
PatrolInfoDlg.collectData = function () {
    this
        .set('id')
        .set('creater')
        .set('pareaId')
        .set('storeyId')
        .set('type')
        .set('remark')
        .set('patrolDate')
        .set('createDate');
}
/**
 * 验证数据是否为空
 */
PatrolInfoDlg.validate = function () {
    $('#patorlInfoForm').data("bootstrapValidator").resetForm();
    $('#patorlInfoForm').bootstrapValidator('validate');
    return $("#patorlInfoForm").data('bootstrapValidator').isValid();
};
/**
 * 提交添加
 */
PatrolInfoDlg.addSubmit = function () {
    this.clearData();
    this.collectData();
    if (!this.validate()) {
        return;
    }
    if ($("#pareaId").val() == "") {
        Feng.error("巡视区域不存在,请重新选择!");
        return;
    }
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/patrol/add", function (data) {
        Feng.success("添加成功!");
        window.parent.Patrol.table.refresh();
        PatrolInfoDlg.close();
    }, function (data) {
        Feng.error("添加失败!" + data.responseJSON.message + "!");
    });
    ajax.set(this.patrolInfoData);
    ajax.start();
}

/**
 * 提交修改
 */
PatrolInfoDlg.editSubmit = function () {
    this.clearData();
    this.collectData();
    if (!this.validate()) {
        return;
    }
    if ($("#pareaId").val() == "") {
        Feng.error("巡视区域不存在,请重新选择!");
        return;
    }
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/patrol/update", function (data) {
        Feng.success("修改成功!");
        window.parent.Patrol.table.refresh();
        PatrolInfoDlg.close();
    }, function (data) {
        Feng.error("修改失败!" + data.responseJSON.message + "!");
    });
    ajax.set(this.patrolInfoData);
    ajax.start();
}

/**
 * 根据办公楼ID查询所属巡视区域
 * @param storeyId
 * @param type
 */
function getPArea(storeyId, type) {
    $('#pareaId').empty();
    var ajax = new $ax(Feng.ctxPath + "/patrolArea/list", function (data) {
        $.each(data, function (i, item) {
            var $option = $("<option></option>");
            if ($("#pareaIdValue").val() != undefined && $("#pareaIdValue").val() == item.id) {
                $option.attr("selected", "selected");
            }
            $option.attr("value", item.id);
            $option.text(item.name);
            $('#pareaId').append($option);
        });
    }, function (data) {
        Feng.error("获取数据失败!" + data.responseJSON.message + "!");
    });
    ajax.set('storeyId', storeyId);
    ajax.set('type', type);
    ajax.start();
}

function getPareaBySuggest(storeyId, type) {
    $("#pareaSuggest").val('');
    $("#pareaId").val('');
    $("#pareaSuggest").bsSuggest("destroy");
    var testBsSuggest = $("#pareaSuggest").bsSuggest({
        url: Feng.ctxPath + "/patrolArea/searchPatrolAreaList?storeyId=" + storeyId + "&type=" + type,
        effectiveFields: ['id', "name", "position"],
        // searchFields: [ "name"],
        effectiveFieldsAlias: {id: "编号", name: "巡视区域名称", position: '位置'},
        ignorecase: true,
        showHeader: true,
        clearable: true,
        idField: "id",//每组数据的哪个字段作为 data-id，优先级高于 indexId 设置（推荐）
        keyField: "name"//每组数据的哪个字段作为输入框内容，优先级高于 indexKey 设置（推荐）
    }).on('onDataRequestSuccess', function (e, result) {
        if (result.value.length > 0) {
            if ($("#pareaIdValue").val() != "") {
                $.each(result.value, function (i, item) {
                    if ($("#pareaIdValue").val() == item.id) {
                        $("#pareaSuggest").val(item.name);
                        $("#pareaId").val(item.id);
                    }
                });
            }
            // else {
            //     $("#pareaSuggest").val(result.value[0].name);
            //     $("#pareaId").val(result.value[0].id);
            // }
        }
    }).on('onSetSelectValue', function (e, keyword) { //当从下拉菜单选取值时触发，并传回设置的数据到第二个参数
        // console.log('onSetSelectValue: ', keyword);
        $("#pareaId").val(keyword.id);
    }).on('onUnsetSelectValue', function (e) {//当设置了 idField，且自由输入内容时触发（与背景警告色显示同步）
        $("#pareaId").val('');
        // console.log("onUnsetSelectValue", e);
    });
    //     .on('onShowDropdown',function (e, data) {
    //     console.log('onShowDropdown', e.target.value, data);
    // });
}

function getType(storeyId) {
    $('#type').empty();
    var ajax = new $ax(Feng.ctxPath + "/storey/getPatrolAreas", function (data) {
        $.each(data, function (i, item) {
            var $option = $("<option></option>");
            if ($("#typeValue").val() != undefined && $("#typeValue").val() == item.id) {
                $option.attr("selected", "selected");
            }
            $option.attr("value", item.id);
            $option.text(item.name);
            $('#type').append($option);
        });
    }, function (data) {
        Feng.error("获取数据失败!" + data.responseJSON.message + "!");
    });
    ajax.set('storeyId', storeyId);
    ajax.start();
}

$(function () {
    Feng.initValidator("patorlInfoForm", PatrolInfoDlg.validateFields);
    var storeyId = "";
    if ($("#storeyIdValue").val() != undefined) {
        storeyId = $("#storeyIdValue").val();
    } else {
        storeyId = $("#storeyId").val();
    }
    getType(storeyId);
    var type = "";
    if ($("#typeValue").val() != undefined) {
        type = $("#typeValue").val();
    } else {
        type = $("#type").val();
    }
    getPArea(storeyId, type);
    getPareaBySuggest(storeyId, type);
    $("#storeyId").change(function () {
        getType($(this).val());
        getPArea($("#storeyId").val(), $("#type").val());
        getPareaBySuggest($("#storeyId").val(), $("#type").val());
    });
    $("#type").change(function () {
        getPArea($("#storeyId").val(), $("#type").val());
        getPareaBySuggest($("#storeyId").val(), $("#type").val());
    });
    //初始化办公楼选项
    if ($("#storeyIdValue").val() != undefined) {
        $("#storeyId").val($("#storeyIdValue").val());
    }
});
